#include<bits/stdc++.h>
#define int long long
using namespace std;
#define N 200005
int n;
int a[N],b[N];
int len,s[N],l[N],r[N];
int ans[N];
void sub(){
    for(int i=1;i<=n;i++) ans[i]=1e18;
    for(int i=1;i<=n;i++){
        int x=a[i],y=b[i];
        for(int j=i;j<=n;j++){
            x=min(x,a[j]);
            y=min(y,b[j]);
            ans[j-i+1]=min(ans[j-i+1],abs(x-y));
        }
    }
    for(int i=1;i<=n;i++) printf("%lld\n",ans[i]);
}
void subA(){
    int mn=1e18;
    for(int i=1;i<=n;i++) mn=min(mn,a[i]);
    for(int i=1;i<=n;i++) printf("%lld\n",mn-1);
}
void subB(){
    for(int i=1;i<=n;i++) l[i]=1,r[i]=n;
    for(int i=1;i<=n;i++){
        while(len&&a[s[len]]>a[i]) r[s[len]]=i-1,len--;
        s[++len]=i;
    }
    len=0;
    for(int i=n;i>=1;i--){
        while(len&&a[s[len]]>a[i]) l[s[len]]=i+1,len--;
        s[++len]=i;
    }
    for(int i=1;i<=n;i++) ans[r[i]-l[i]+1]=max(ans[r[i]-l[i]+1],a[i]);
    for(int i=n-1;i>=1;i--) ans[i]=max(ans[i],ans[i+1]);
    for(int i=1;i<=n;i++) printf("%lld\n",(int)1e9-ans[i]);
}
signed main(){
    freopen("min.in","r",stdin);
    freopen("min.out","w",stdout);
    scanf("%lld",&n);
    for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
    for(int i=1;i<=n;i++) scanf("%lld",&b[i]);
    if(n<=1000){sub();return 0;}
    int s1=0,s2=0;
    for(int i=1;i<=n;i++){
        if(b[i]==1) s1++;
        if(b[i]==1e9) s2++;
    }
    if(s1==n){subA();return 0;}
    if(s2==n){subB();return 0;}
    return 0;
}